<?php 
class LoginController extends CommonController{

	/**
	 * 验证码
	 */
	public function code(){
		$code = new Code();
		$code->show();
	}


	/**
	 * 前台登陆 + hd异步验证
	 */
	public function index(){
		// session(NULL);die;
		// 如果已经登陆，则不用再次登陆
		if(isset($_SESSION['uid']) && isset($_SESSION['uname'])) {
			go(U('Index/index'));
		}
		
		if(IS_POST){
			
			// 检测输入的验证码是否一致
			if(Q('post.code2_log','','strtoupper') != session('code')){
				$this->error('验证码错误');
			}
			// 验证用户登陆(前后台都用，所以放到模型，可以公用)
			$model = K('user');
			$userInfo = $model->validate_login(Q('post.username_log'),Q('post.password_log'));
			if(!$userInfo){
				$this->error($model->error);
			}

			// 7天登陆
			if(isset($_POST['auto'])){
				setcookie(session_name(),session_id(),time()+3600*24*7,'/');
			}else{
				setcookie(session_name(),session_id(),0,'/');
			}
		
			// 如果能到这里证明登陆成功
			session('uid',$userInfo['u_id']);
			session('uname',$userInfo['u_name']);

			// 用户登陆后，把表里的购物车数据存入session
			$data = K('BuyInfo')->where("bi_uid={$userInfo['u_id']}")->getField("bi_cart_info",true);
			if(isset($data[0])){
				// 如果用户之前没商品加入过购物车，表里查不出数据，这里不会存在
				$data = unserialize($data[0]);
				session('cart',$data);
			}

			// 登陆后，跳转回之前浏览的页面
			// url在CommonController里面，每次进入类都会自动保存最近浏览的地址
			$url = $_SESSION['url'];
			unset($_SESSION['url']);
			$this->success('登陆成功',U('Index/index'));
		}

		$this->display();

	}


	/**
	 * 退出登陆
	 */
	public function out(){
		// 清楚所有session
		session('uname',null);
		session('uid',null);
		$this->success('退出成功');
	}

	


	public function reg(){

		if (IS_POST) {
			// 判断验证码
			if(Q('post.code','','strtoupper') != session('code')){
				$this->error('您的验证码输入错误');
			}

			// 用户名检测：用户名不能为空
			$username = Q('post.username');
			// 检测用户是否为空字符串
			if(empty($username)) $this->error('亲,用户名不能为空');

			// 检验密码部分
			$passwd = md5(Q('post.password'));
			$passwd2 = md5(Q('post.password2'));

			// 密码不能少于6位
			if(strlen($passwd)<6) $this->error('亲,密码不得少于6位');
			
			// 两次密码必须相同
			if($passwd != $passwd2) $this->error('Hi...两次密码不相同');

			// 如果前面的判断全部通过，证明可以注册，开始组合sql
			$data = array(
				'u_name'	=>$username,
				'u_pwd'		=>$passwd
			);
			K('User')->add($data);

			$this->success('注册成功,亲!可以登录咯^o^',__ROOT__.'?c=Login&a=index');

		}



		$this->display();

	}


	/**
	 * 注册时用户名是否存在
	 * 用hdjs发异步验证
	 */
	public function yb_check_name_reg(){
		$username = Q('post.username_reg');
		$userInfo = K('User')->where("u_name='{$username}'")->find();
		// 如果存在
		if($userInfo){
			$arr = array('status'=>0,'message'=>'用户名已存在');
		}else{
			$arr = array('status'=>1,'message'=>'用户名可以注册');
		}

		$this->ajax($arr);

	}


}


















 ?>